#ifndef _HAL_TM1650_H
#define _HAL_TM1650_H
#include "main.h"

//#define	KEY_WASH			0x6D
//#define	KEY_HEAT			0x75
#define	KEY_WASH			0x74
#define	KEY_HEAT			0x6c  
#define TM1650_SCL_H    	HAL_GPIO_WritePin(TM1650_SCL_GPIO_Port,TM1650_SCL_Pin, GPIO_PIN_SET) 
#define TM1650_SCL_L    	HAL_GPIO_WritePin(TM1650_SCL_GPIO_Port,TM1650_SCL_Pin, GPIO_PIN_RESET)    
#define TM1650_SDA_H    	HAL_GPIO_WritePin(TM1650_SDA_GPIO_Port,TM1650_SDA_Pin, GPIO_PIN_SET)
#define TM1650_SDA_L    	HAL_GPIO_WritePin(TM1650_SDA_GPIO_Port,TM1650_SDA_Pin, GPIO_PIN_RESET)  
#define READ_SDA 					HAL_GPIO_ReadPin(TM1650_SDA_GPIO_Port, TM1650_SDA_Pin)   


//数码管位数地址
#define	DIG1			0x68	//Dig0位
#define	DIG2			0x6A	//Dig1位
#define	DIG3			0x6C	//Dig2位
#define	DIG4			0x6E    //Dig3位

typedef enum
{
	LED_LOCK_LIGHT = 0,//童锁
	LED_LOCK_FLAG1 ,//童锁1
	LED_LOCK_FLAG2 ,//童锁2
	LED_LOCK_FLAG3 ,//童锁3
	
	LED_HOT_LIGHT ,//热水
	LED_HOT_FLAG1,//热水标志1
	LED_HOT_FLAG2,//热水标志2
	LED_HOT_FLAG3,//热水标志3
}teTM1650Led;

#define TEALED 0X01
#define COFFEELED 0X02
#define WATERLED 0X04
#define HIGHLED 0X08
#define ENTERLED 0X10



//extern uint8_t	g_LED_type;
extern void TM1650_Init(void);


extern void LED_ON(teTM1650Led led);
extern void LED_OFF(teTM1650Led led);
extern void LED8_display(uint8_t num);


// extern void DisplayNumber_4BitDig(u16 num,u16 led);
extern void TM1650_SendCommand(uint8_t CMD1,uint8_t CMD2); 
extern void DigitalScan(void)  ;  //@7 扫描处理
extern uint8_t KEY_Scan(void);

extern void hal_tm1650_test(void);
// TM1650 对应键盘扫描码：
// 编址 DIG4 DIG3 DIG2 DIG1
// A/KI1 47H 46H 45H 44H
// B/KI2 4FH 4EH 4DH 4CH
// C/KI3 57H 56H 55H 54H
// D/KI4 5FH 5EH 5DH 5CH
// E/KI5 67H 66H 65H 64H
// F/KI6 6FH 6EH 6DH 6CH
// G/KI7 77H 76H 75H 74H


#endif

